home *** CD-ROM | disk | FTP | other *** search
/ Champak 138 / Volume 138 Aug 19 2011 - Damaged.iso / Games / shadez.swf / scripts / Local / Game / Thing / CNode.as < prev    next >
Encoding:
Text File  |  2011-08-19  |  6.3 KB  |  230 lines

  1. package Local.Game.Thing
  2. {
  3.    import Local.Game.World.CPosition;
  4.    import flash.geom.Point;
  5.    
  6.    public class CNode
  7.    {
  8.       
  9.       public static const mGravityDelta:CPosition;
  10.       
  11.       {
  12.          if(true)
  13.          {
  14.             mGravityDelta = CThingMath.mGravityDelta;
  15.          }
  16.       }
  17.       
  18.       public var mContraint:Number;
  19.       
  20.       public var mDelta:CPosition;
  21.       
  22.       private var mTraction:Boolean;
  23.       
  24.       public var mBounce:Number = 0.25;
  25.       
  26.       private var Break:Function;
  27.       
  28.       internal var mPrevNode:CNode;
  29.       
  30.       internal var mNextNode:CNode;
  31.       
  32.       public var mPosition:CPosition;
  33.       
  34.       private var mParent:CThingSprite;
  35.       
  36.       private var GetAltitude:Function;
  37.       
  38.       public var mGradient:CPosition;
  39.       
  40.       public function CNode(param1:Point, param2:CThingSprite, param3:CNode = null)
  41.       {
  42.          if(true)
  43.          {
  44.             mBounce = 0.25;
  45.             if(true)
  46.             {
  47.                super();
  48.                if(true)
  49.                {
  50.                   mPosition = new CPosition(param1.x,param1.y);
  51.                   if(true)
  52.                   {
  53.                      mDelta = new CPosition(0,0);
  54.                      if(true)
  55.                      {
  56.                         mParent = param2;
  57.                         if(true)
  58.                         {
  59.                            mNextNode = param3;
  60.                            mGradient = new CPosition();
  61.                         }
  62.                         GetAltitude = mParent.GetAltitude;
  63.                      }
  64.                      Break = mParent.Break;
  65.                   }
  66.                   if(!mNextNode)
  67.                   {
  68.                   }
  69.                   ┬º┬ºgoto(addr85);
  70.                }
  71.                GetAltitude = param2.GetAltitude;
  72.             }
  73.             mContraint = mPosition.subtract(mNextNode.mPosition).length;
  74.          }
  75.          addr85:
  76.       }
  77.       
  78.       public function Flip() : void
  79.       {
  80.          var _loc1_:CPosition = null;
  81.          _loc1_ = mNextNode.mPosition;
  82.          mNextNode.mPosition = mPosition;
  83.          mPosition = _loc1_;
  84.       }
  85.       
  86.       private function _bounce(param1:Number) : void
  87.       {
  88.          var _loc2_:Number = NaN;
  89.          if(true)
  90.          {
  91.             _loc2_ = param1 - mPosition.y;
  92.             if(true)
  93.             {
  94.                mPosition.y = param1;
  95.                if(true)
  96.                {
  97.                   mDelta.y = -Math.abs(mDelta.y * mBounce);
  98.                }
  99.                if(mDelta.y > -0.5)
  100.                {
  101.                }
  102.                ┬º┬ºgoto(addr56);
  103.             }
  104.             mDelta.y = 0;
  105.          }
  106.          addr56:
  107.       }
  108.       
  109.       public function Update() : Boolean
  110.       {
  111.          var _loc1_:Number = NaN;
  112.          var _loc2_:CPosition = null;
  113.          var _loc3_:CPosition = null;
  114.          var _loc4_:* = NaN;
  115.          var _loc5_:Number = NaN;
  116.          mDelta.y += mGravityDelta.y;
  117.          mPosition.Add(mDelta);
  118.          _loc1_ = GetAltitude(mPosition.x);
  119.          if(mPosition.y > _loc1_)
  120.          {
  121.             _bounce(_loc1_);
  122.             mTraction = true;
  123.          }
  124.          else
  125.          {
  126.             mTraction = false;
  127.          }
  128.          ┬º┬ºpush(mNextNode);
  129.          if(true)
  130.          {
  131.             if(┬º┬ºpop())
  132.             {
  133.                addr56:
  134.                mNextNode.Update();
  135.                _loc2_ = mPosition;
  136.                _loc3_ = mNextNode.mPosition;
  137.                mGradient.SetXY(_loc3_.x - _loc2_.x,_loc3_.y - _loc2_.y);
  138.                ┬º┬ºpush(mGradient.length);
  139.                ┬º┬ºpush(mGradient.length);
  140.                if(true)
  141.                {
  142.                   _loc4_ = ┬º┬ºpop();
  143.                   ┬º┬ºpush(mContraint);
  144.                   if(true)
  145.                   {
  146.                      ┬º┬ºpush(┬º┬ºpop() - ┬º┬ºpop());
  147.                      ┬º┬ºpush(_loc4_);
  148.                   }
  149.                   ┬º┬ºpush(┬º┬ºpop() * (0.5 + 0.5));
  150.                }
  151.                _loc5_ = ┬º┬ºpop() / ┬º┬ºpop();
  152.                _loc2_.x += mGradient.x * 0.5 * _loc5_;
  153.                _loc2_.y += mGradient.y * 0.5 * _loc5_;
  154.                _loc3_.x -= mGradient.x * 0.5 * _loc5_;
  155.                _loc3_.y -= mGradient.y * 0.5 * _loc5_;
  156.                mParent.mAngle.mAngleRAD = Math.atan2(_loc3_.y - _loc2_.y,_loc3_.x - _loc2_.x);
  157.                mParent.mPosition.SetXY(_loc2_.x + (_loc3_.x - _loc2_.x) / 2,_loc2_.y + (_loc3_.y - _loc2_.y) / 2);
  158.             }
  159.             else
  160.             {
  161.                mParent.mPosition.Copy(mPosition);
  162.             }
  163.             return mTraction;
  164.          }
  165.          ┬º┬ºgoto(addr56);
  166.       }
  167.       
  168.       public function Move(param1:CPosition) : Boolean
  169.       {
  170.          ┬º┬ºpush(mPosition);
  171.          if(true)
  172.          {
  173.             ┬º┬ºpop().Add(param1);
  174.             if(mNextNode)
  175.             {
  176.                addr18:
  177.                mNextNode.mPosition.Add(param1);
  178.             }
  179.             return true;
  180.          }
  181.          ┬º┬ºgoto(addr18);
  182.       }
  183.       
  184.       public function get hasTraction() : Boolean
  185.       {
  186.          if(mNextNode)
  187.          {
  188.             ┬º┬ºpush(mNextNode.mTraction);
  189.             if(true)
  190.             {
  191.                ┬º┬ºpush(┬º┬ºpop());
  192.                if(true)
  193.                {
  194.                   if(!┬º┬ºpop())
  195.                   {
  196.                      if(true)
  197.                      {
  198.                         ┬º┬ºpop();
  199.                         ┬º┬ºgoto(addr45);
  200.                      }
  201.                      else
  202.                      {
  203.                         addr44:
  204.                         addr45:
  205.                         ┬º┬ºpush(mTraction);
  206.                         if(true)
  207.                         {
  208.                            addr32:
  209.                            ┬º┬ºpush(┬º┬ºpop() == true);
  210.                         }
  211.                         return ┬º┬ºpop();
  212.                         ┬º┬ºpush(┬º┬ºpop() == true);
  213.                      }
  214.                      ┬º┬ºgoto(addr45);
  215.                   }
  216.                   ┬º┬ºgoto(addr32);
  217.                }
  218.                ┬º┬ºgoto(addr44);
  219.             }
  220.             ┬º┬ºgoto(addr45);
  221.          }
  222.          else
  223.          {
  224.             ┬º┬ºpush(mTraction);
  225.          }
  226.          ┬º┬ºgoto(addr44);
  227.       }
  228.    }
  229. }
  230.